From 50ae93273376ede704012030009c29bd58d6a569 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Sun, 26 Nov 2017 16:22:25 +0100
Subject: [PATCH] template.S: fix to build on architecture with non-empty
 __USER_LABEL_PREFIX__

Blackfin has a non-empty __USER_LABEL_PREFIX__, which means that a
symbol called "foo" in C must be named "_foo" in assembler.

Interestingly, it seems like "$(CC) -xassembler - -c" doesn't pass the
input source file through the C preprocessor, so we do this
explicitly.

Submitted-upstream: https://github.com/open-power/pdbg/pull/26
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Makefile.am |  2 +-
 template.S  | 22 +++++++++++++++-------
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 9d34bff..82e0856 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -62,4 +62,4 @@ p9z-fsi.dtb.o: p9z-fsi.dts p9-fsi.dtsi
 %.dtb.o: %.dts
 	dtc -i$(dir $@) -I dts $< -O dtb > $@.tmp
 	symbol_prefix=`echo $@ | tr '.-' '_'` ; \
-	sed "s%SYMBOL_PREFIX%$${symbol_prefix}%g; s%FILENAME%$@.tmp%g" $(top_srcdir)/template.S | $(CC) -xassembler - -c -o $@
+	sed "s%SYMBOL_PREFIX%$${symbol_prefix}%g; s%FILENAME%$@.tmp%g" $(top_srcdir)/template.S | $(CPP) - | $(CC) -xassembler - -c -o $@
diff --git a/template.S b/template.S
index 2e6cbdb..1407a7c 100644
--- a/template.S
+++ b/template.S
@@ -1,10 +1,18 @@
+#ifdef __USER_LABEL_PREFIX__
+#define CONCAT1(a, b) CONCAT2(a, b)
+#define CONCAT2(a, b) a ## b
+#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
+#else
+#define SYM(x) x
+#endif
+
 .section .data
-_binary_SYMBOL_PREFIX_start:
+SYM(_binary_SYMBOL_PREFIX_start):
 .incbin "FILENAME"
 .align 4
-_binary_SYMBOL_PREFIX_end:
-_binary_SYMBOL_PREFIX_size:
-	.long	_binary_SYMBOL_PREFIX_end - _binary_SYMBOL_PREFIX_start
-.globl _binary_SYMBOL_PREFIX_start
-.globl _binary_SYMBOL_PREFIX_end
-.globl _binary_SYMBOL_PREFIX_size
+SYM(_binary_SYMBOL_PREFIX_end):
+SYM(_binary_SYMBOL_PREFIX_size):
+	.long	SYM(_binary_SYMBOL_PREFIX_end) - SYM(_binary_SYMBOL_PREFIX_start)
+.globl SYM(_binary_SYMBOL_PREFIX_start)
+.globl SYM(_binary_SYMBOL_PREFIX_end)
+.globl SYM(_binary_SYMBOL_PREFIX_size)
-- 
2.13.6

